#ifndef __sbus_H
#define __sbus_H 
#include "stdint.h"

//定义subs信号的最小值 最大值 中值 死区 以及希望转换成PWM值的范围（1000-2000）
#define SBUS_RANGE_MIN 200.0f
#define SBUS_RANGE_MAX 1800.0f

#define SBUS_MIN 203
#define SBUS_MAX 1800
//2022-7-13
//jsw
//控制两路 电机的PWM 停止值 最小值 最大值
#define PWM_ZKB_STOP 3000
#define PWM_ZKB_MIN		2040
#define PWM_ZKB_MAX  3960

//解析sbus信号结构体
typedef struct
{
	uint16_t CH1;//通道1数值
	uint16_t CH2;//通道2数值
	uint16_t CH3;//通道3数值
	uint16_t CH4;//通道4数值
	uint16_t CH5;//通道5数值
	uint16_t CH6;//通道6数值
  uint16_t CH7;//通道7数值
  uint16_t CH8;//通道8数值
  uint16_t CH9;//通道9数值
  uint16_t CH10;//通道10数值
  uint16_t CH11;//通道11数值
  uint16_t CH12;//通道12数值
  uint16_t CH13;//通道13数值
  uint16_t CH14;//通道14数值
  uint16_t CH15;//通道15数值
  uint16_t CH16;//通道16数值
	uint8_t ConnectState;//遥控器与接收器连接状态 0=未连接，1=正常连接
}SBUS_CH_Struct;

//2022-7-7 jsw sbus信号解析
uint8_t update_sbus(uint8_t *buf);
//2022-7-7 jsw sbus通道值转换为指定大小的期待值
float sbus_to_Range(uint16_t sbus_value, float p_min, float p_max);
//2022-7-9 jsw sbus通道数据转换 传入通道及
float sbus_CH_toM2006Value(uint16_t CH_num, float p_min, float p_max);
//2022-7-9 jsw 发送给电机的值分解 为8字节     参数二为分解后的接收数组
void sbus_toM2006_ValueDecompose(int16_t Value,uint8_t Value_buff[]);
//控制行走流程
void SBUS_CONTROL_FLOW(void);

//避免重复声明
extern SBUS_CH_Struct SBUS_CH;
extern float speed;

#endif
